// 匹配第一个字符
const firstLetter = /^./
// 匹配一个或多个空白字符以及常见的字符符号(保留分割符)
const splitRegex = /([!@#$%&(),.！￥（），。“”：？-\s+]+)/g

// 将首字母转为大写
export function firstLetterToUpperCase(tableData: ITableDataItem[]) {
  tableData.forEach((item) => {
    const name = item.newest.name
    if (name) {
      item.newest.name = name.replace(firstLetter, (match) => {
        return match.toUpperCase()
      })
    }
  })
}

// 将首字母转为小写
export function firstLetterToLowerCase(tableData: ITableDataItem[]) {
  tableData.forEach((item) => {
    const name = item.newest.name
    if (name) {
      item.newest.name = name.replace(firstLetter, (match) => {
        return match.toLowerCase()
      })
    }
  })
}

// 全部大写
export function allLetterToUpperCase(tableData: ITableDataItem[]) {
  tableData.forEach((item) => {
    const name = item.newest.name
    if (name) {
      item.newest.name = name.toUpperCase()
    }
  })
}

// 全部小写
export function allLetterToLowerCase(tableData: ITableDataItem[]) {
  tableData.forEach((item) => {
    const name = item.newest.name
    if (name) {
      item.newest.name = name.toLowerCase()
    }
  })
}

// 单词首字母大写
export function firstWordLetterToUpperCase(tableData: ITableDataItem[]) {
  tableData.forEach((item) => {
    const name = item.newest.name
    if (name) {
      // 切割下来的元素已经保留了原连接符
      let splitArr = name.split(splitRegex)
      splitArr = splitArr.map((word) => {
        // 转为首字母大写
        return word.replace(firstLetter, (match) => {
          return match.toUpperCase()
        })
      })
      // 重新进行拼接
      item.newest.name = splitArr.join('')
    }
  })
}
